#ifndef WXSPROPERTYSTREAM_H
#define WXSPROPERTYSTREAM_H

#include <wx/string.h>


class wxsPropertyStream {
  public:


    wxsPropertyStream() {}


    virtual ~wxsPropertyStream() {}


    virtual bool GetChar( const wxString &Name, wxChar& Value, wxChar Default = _T( '\0' ) );


    virtual bool PutChar( const wxString &Name, wxChar& Value, wxChar Default = _T( '\0' ) );


    virtual bool GetDouble( const wxString& Name, double& value, double Default = 0.0 );


    virtual bool PutDouble( const wxString& Name, double& value, double Default = 0.0 );


    virtual bool GetLong( const wxString &Name, long& Value, long Default = 0 );


    virtual bool PutLong( const wxString &Name, long& Value, long Default = 0 );


    virtual bool GetULong( const wxString &Name, unsigned long& Value, unsigned long Default = 0 );


    virtual bool PutULong( const wxString &Name, unsigned long& Value, unsigned long Default = 0 );


    virtual bool GetBool( const wxString &Name, bool& Value, bool Default = false );


    virtual bool PutBool( const wxString &Name, bool& Value, bool Default = false );


    virtual bool GetString( const wxString &Name, wxString& Value, wxString Default = wxEmptyString ) = 0;


    virtual bool PutString( const wxString &Name, wxString& Value, wxString Default = wxEmptyString ) = 0;


    virtual void SubCategory( const wxString &Name ) = 0;


    virtual void PopCategory() = 0;
};

#endif
